package maggames.core.interfaces;

import javax.swing.JPanel;

import maggames.core.base.BaseSwingInterface;

/**
 * The main game interface allowing the loader to dynamically load a given game engine and required interfaces
 * 
 * @author BenjaminPLee
 * @version 1.0
 */
public interface GameFactory {
	
	/**
	 * Returns a copy of the chosen game's engine
	 * 
	 * @return the chosen game engine
	 */
	public abstract GameEngine getEngine();
	
	/**
	 * Returns a swing JPanel representation of the given game's interface
	 * 
	 * @return a swing version of the game interface
	 */
	public abstract BaseSwingInterface getSwingInterface();
}
